let fs = require('fs')
let path = require('path')
try {
    function listArr(filePath) {
        // 定义一个数组，用于存放结果
        let result = []
        // 读取所有的内容
        let all = fs.readdirSync(filePath)  // 得到是一个数组，存放的是所有的该文件夹中所有的内容
        // 将所有内容插入到结果数组
        result = result.concat(all)
        // 遍历所有内容，检查是否有目录，如果有，则继续调用listArr函数，将函数执行的结果合并到结果数组中
        all.forEach((item) => {
            // 如果需要完整路径就注释上一步，执行这一步
            // result.push(path.join(path.basename(__dirname),filePath,item))
            // 凑齐完整路径
            // 判断filePath最后一个字符是否为/
            // filePath如果最后一个是/，那么就和item直接拼接就可以，否则需要再加一个/
            // let one = filePath.lastIndexOf('/') === filePath.length - 1
            // let two = one ? filePath + item : `${filePath}/${item}`
            let two = path.join(filePath,item)
            // 使用 fs 模块中的 stat 方法，查看该路径的状态
            let boolstat = fs.statSync(two).isDirectory()  // 查看该路径是不是文件夹
            if (boolstat) {
                // 拿到处理好的路径以后，直接调用listall函数继续处理,拿到的结果lastsym和原结果newarr合并，
                // 再重新赋值给原结果resArr
                let newarr = listArr(two)
                result = result.concat(newarr)
            }
        })
        // 返回结果数组
        return result
    }
    let zong = listArr('./')
    console.log('最终结果: ', zong);
}
catch (err) {
    console.log(err.message);
}